import java.util.HashMap;
import java.util.HashSet;

public class Day6 {
    // 217、存在重复元素
    public boolean containsDuplicate(int[] nums) {
        HashSet<Integer> set = new HashSet<>();
        for(int num : nums) {
            if(set.contains(num)) {
                // 说明这个数是重复数字，那么这个数组就是存在重复元素的
                return true;
            }
            // 不存在，就需要把这个数据放入到 哈希表中
            set.add(num);
        }
        return false;
    }

    // 219、存在重复元素II
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int i = 0;i < nums.length;i++) {
            if(map.containsKey(nums[i])) {
                if(i - map.get(nums[i]) <= k) {
                    return true;
                }
            }
            // 放入进 哈希表中，同时如果里面存在相同的就是对其下标进行更新
            map.put(nums[i],i);
        }
        return false;
    }
}
